<%@page import="org.swim.entity.Feedback"%>
<%@page import="org.swim.entity.Abilita"%>
<%@page import="org.swim.sessions.GestoreAbilitaRemote"%>
<%@page import="org.swim.sessions.GestoreAbilita"%>
<%@page import="org.swim.entity.Notificabile.AzioniNotifica"%>
<%@page import="org.swim.entity.Utente"%>
<%@page import="org.swim.entity.Notificabile"%>
<%@page import="javax.servlet.jsp.tagext.TryCatchFinally"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
 import="java.util.*,javax.naming.*,javax.sql.DataSource,java.sql.*, org.swim.sessions.GestoreUtentiRemote"
     pageEncoding="UTF-8"%>
<% //PAGINA PERSONALE!
	Map m = request.getParameterMap();
	String idUtente = (String) session.getAttribute("idUtente");
	if(idUtente == null){ 
		if(! m.containsKey("idUtente")){
			response.setStatus(response.SC_MOVED_TEMPORARILY);
			response.setHeader("Location", "../");session.setAttribute("doLogin", -1);
			return;
		}
		idUtente = request.getParameter("idUtente");
	}
	//import javax.ejb.EJB;
	Hashtable<String,String> env = new Hashtable<String,String>();
	env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
	env.put(Context.PROVIDER_URL,"localhost:1099"); 
	InitialContext ctx = new InitialContext(env);
	GestoreUtentiRemote gestore = (GestoreUtentiRemote)ctx.lookup("GestoreUtenti/remote");

	Utente utente = null;
	try{
		utente = gestore.autentica(idUtente, request.getParameter("password"));
		session.setAttribute("idUtente", idUtente);
	}catch (Exception e) {
		session.setAttribute("doLogin", -1);
		response.setStatus(response.SC_MOVED_TEMPORARILY);
		response.setHeader("Location", "../"); 
		return;
	}
	String mieAbilita = "";
	for(Abilita a : gestore.getListAbilita(idUtente)){
		mieAbilita += "'" + a.getNome() + "' : 1 , ";
	}
	GestoreAbilitaRemote gestoreAb = (GestoreAbilitaRemote)ctx.lookup("GestoreAbilita/remote");
	List<Abilita> abilitaValide = gestoreAb.getAbilitaVaide();
	String abs = "";
	for(Abilita a : abilitaValide){
		abs += "'" + a.getNome() + "', ";
	}
	List<Utente> listaAmici = gestore.getAmici(idUtente);
	String amici = "";
	for(Utente u : listaAmici){
		amici += "'" + u.getEmail() + "' : 1, ";
	}
	
	
%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="charset=utf-8" />
<meta name="viewport" content=" user-scalable=no,initial-scale=1.0, maximum-scale=1.0" />
<script src="./base.js" type="text/javascript" ></script>
<link rel="stylesheet" href="../base.css">
<title>SWIM v2</title>
<script  type="text/javascript">
	var abilitaValide = [<%out.print(abs);%>];
	var mieAbilita = {<%out.print(mieAbilita);%>};
	var mieiAmici = {<%out.print(amici);%>};
	var mieiDati ={
				"email":"<%out.print(utente.getEmail());%>",
				"citta":"<%out.print(utente.getCitta());%>",
				"dataNascita": new Date("<%out.print(utente.getDataNascita());%>"),
				"nome":"<%out.print(utente.getNome());%>",
				"cognome":"<%out.print(utente.getCognome());%>",
				};
	window.onerror = function(e){
		alert((e)+
		(e.lineno?("on line "+e.lineno +" in script \""+e.filename+"\""):""));
	};
	window.addEventListener("load",function () {
		dialogs.load();
		profilo.load();
		data.load();
		infoUtente.load();
	},false);
</script>
</head>
<body ontouchstart="">
<div class="main-bar bar">
<span class="logo" style="float:left" >SWIM v2</span>
<a class="start flat-button" onclick="profilo.show()">Profilo</a><a onclick="amici.show()" class="start flat-button">Amici</a><a onclick="dialogs.show('dialogo-cerca')"  class="start end flat-button">Cerca</a>
<form style="float:right" action="../" method="POST"><input type="submit" class="start flat-button" name="logout" value="<%out.print(utente.getNome());%> - Esci" /></form>
</div>
<div class="notifiche">
<% for(Notificabile n: gestore.getNotifiche(idUtente)){ %>
	<div class="notifica" id="<% out.print(n.getIdNotifica()); %>">
		<span class="data"><%out.print(n.getDataModifica().toLocaleString());  %></span>
		<div class="top-notifica"><span class="titolo-notifica"><%
			out.print(n.getTitoloNotifica(utente));
		%></span></div>
		<div class="corpo-notifica"><%
			out.print(n.getDecrizioneNotifica(utente));
		%></div>
		<div class="bottom-notifica">
		<%
			if(n.hasAzione(utente,AzioniNotifica.FEEDBACK))  %><a onclick="notifiche.feedback(event)" class="end flat-button">Feedback</a><%;
			if(n.hasAzione(utente,AzioniNotifica.ACCETTA_RIFIUTA))  %><a onclick="notifiche.azione(event,'RIFIUTATA')" class="flat-button">Rifiuta</a><a onclick="notifiche.azione(event,'ACCETTATA')" class="start flat-button">Accetta</a><%;
		%>
		</div>
	</div>
	<%};%>
</div>
<div  id="dialog-container" class="dialog-container">
<div class="dialog"><div class="dialog-actions"><a class="button">Rifiuta</a><a class="button">Accetta</a></div><div class="dialog-top">Profilo Personale</div>
</div>
<div id="dialogo-amici" class="dialog"><div class="dialog-actions"><a onclick="dialogs.hide()" class="button">Chiudi</a></div><div class="dialog-top">Amici</div>
<div class="section-title"></div>
<ul class="users-list" id="lista-amici">
</ul>
</div>

<div id="dialogo-risultati-cerca" class="dialog">
<div class="dialog-actions"><a class="button" onclick="dialogs.hide()">Fine</a></div>
<div class="dialog-top">Risultati</div>
<div class="section-title"></div>
<ul id="results-list" class="users-list">
</ul>
</div>

<div class="dialog" id="dialogo-my-profilo"><div class="dialog-actions"><a  onclick="profilo.edit()" class="button">Modifica</a><a onclick="dialogs.hide()" class="button"  >Chiudi</a></div>
<div class="dialog-top">Profilo Personale
<div class="descrizione"><div id="mieiDatiElenco"></div><div>Le tue abilità: <span id="mieAbilitaElenco" ></span></div></div>
</div>
<div class="section-title">Feedback ricevuti:</div>
	<ul class="feedback-list" id="my-feedback-list">
	<%
	for(Feedback f : gestore.getFeedbacks(idUtente)){
		Utente auth = f.getRichiestaAiuto().getMittente();
	%><li><div class="auth"><div class="rate"><%out.print(f.getValore());%>/5 stelle</div>
	<div class="descrizione"><%out.print(auth.getNome() + " " + auth.getCognome() + " - "+ f.getDataModifica().toLocaleString());
	%></div></div>
	<div class="content"><%out.print(f.getCommento());
	%></div>
	</li><%;
	}
	%></ul>
</div>

<div class="dialog" id="dialogo-my-profilo-edit"><div class="dialog-actions"><a  onclick="dialogs.hide()" class="button">Annulla</a><a onclick="profilo.save()" class="button"  >Fine</a></div>
<div class="dialog-top">Profilo Personale</div>
	<div style="width:300px; max-width:50%; float:right;">
	<div class="section-title">Dati Personali</span></div>
	 <input class="input-text" type="text" placeholder="Nome" id="my-edit-nome" />
	 <input class="input-text" type="text" placeholder="Cognome" id="my-edit-cognome" />
	 <input class="input-text" type="text" placeholder="Citta" id="my-edit-citta" />
	 <input class="input-text" type="date" placeholder="" id="my-edit-nascita" />
	 <a style="width:80%" onclick="profilo.changePassword()" class="button">Cambia Password</a>
	 </div>
	 <div><div class="section-title">Abilità</div>
	<ul  style="height:260px;" class="users-list" id="mieAbilita-list"></ul>
	</div>
	
</div>
<div style="width:300px" id="dialogo-password" class="dialog message-dialog">
<div class="section-title">Cambia Password</div>
	<input class="input-text" type="password" placeholder="Nuova password" id="password-new">
	<input class="input-text" type="password" placeholder="Ripeti la password" id="password-new-2">
	<div class="descrizione" id="password-msg" ></div>
	<div class="dialog-bottom"><a onclick="dialogs.hide()" class="button">Annulla</a><a onclick="profilo.changePasswordConfirm()" class="button red">Cambia</a></div>
</div>
<div style="" id="dialogo-add-ab" class="dialog"><div class="dialog-actions"><a onclick="gestoreabilita.proponi()" class="button">Proponi una abilita</a></div>
<div class="section-title" style="border-top:none"  >Aggiungi un'abilita al tuo profilo</div>
	<ul class="abilita-list" id="add-ab-list" style= "height: 260px; clear:both;">
	</ul>
	<div class="dialog-bottom" style="margin-left:auto; margin-right:auto; width:400px;" 
	><a onclick="dialogs.hide()" class="button">Annulla</a><a onclick="profilo.addAbilitaConfirm()" class="button red">Aggiungi</a></div>
</div>
<div id="dialogo-proponi-ab" class="dialog message-dialog">
	<div class="dialog-top">Proponi una nuova abilita</div>
	<div class="section-title"></div>
	 <input class="input-text" type="text" placeholder="Inserisci il nome per la nuova abilità" id="proponi-ab-nome">
	<div class="dialog-bottom"><a onclick="dialogs.hide()" class="button">Annulla</a><a onclick="gestoreabilita.proponiConferma()" class="button red">Proponi</a></div>
</div>
<div class="dialog" id="dialogo-profilo-utente"><div class="dialog-actions"><a onclick="dialogs.hide()" class="button"  >Chiudi</a></div><div class="dialog-top"><span id="dialogo-profilo-utente-nome">Gervaso Disastro</span>
<div class="descrizione"><span id="dialogo-profilo-utente-email"></span> - <span id="dialogo-profilo-utente-citta"></span> - <span id="dialogo-profilo-utente-eta">30 anni</span></div></div>
<div class="section-title"  id="dialogo-profilo-utente-abilita"></div>
<div class="section-title">Feedback:</div>
<ul class="feedback-list" id="utente-feedback-list">
</ul>
</div>

<div style="" id="dialogo-aiuto" class="dialog message-dialog">
	<div class="dialog-top">Richiedi aiuto</div>
	<div class="section-title">A: <span id="dest-aiuto">Tizio Caio</span>
	<div class="descrizione" id="email-aiuto">tizio.caio@boh.com</div>
	Come: <span id="abilita-aiuto">Cosacco.</span> 
	</div>
	 <input class="input-text" type="text" placeholder="Commento" id="commento-aiuto">
	<div class="dialog-bottom"><a onclick="dialogs.hide()" class="button">Annulla</a><a onclick="data.aiutoConfirm()" class="button red">Invia</a></div>
</div>
<div style="" id="dialogo-feedback" class="dialog message-dialog">
	<div class="dialog-top">Invia un feedback</div>
	<div class="section-title"></div>
		 <div class="descrizione">Valutazione:
	 <input style="width:100px; font-size:16px;"class="input-text" type="number" min=0 max=5 id="feedback-rate"/> stelle
	 </div>
	 	<input class="input-text" type="text" placeholder="Commento" id="feedback-commento"/>

	<div class="dialog-bottom"><a onclick="dialogs.hide()" class="button">Annulla</a><a onclick="notifiche.feedbackConfirm()" class="button red">Invia</a></div>
</div>
<div id="dialogo-cerca" class="dialog message-dialog" style="width: 80%; max-width: 80%;">
	<div class="dialog-top">Cerca <select id="search-amici" class="button light" style="width:auto; font-size:initial; -webkit-appearance: none;" ><option value=0>fra Tutti gli Utenti</option><option value=1>fra gli Amici</option></select></div>
	<div style="width:300px; max-width:50%; float:right;">
	 <input class="input-text" type="text" placeholder="Nome" id="search-nome" />
	 <input class="input-text" type="text" placeholder="Cognome" id="search-cognome" />
	 <input class="input-text" type="text" placeholder="Citta" id="search-citta" />
	 <input class="input-text" type="email" placeholder="Indirizzo di posta elettronica" id="search-email" />
	 </div>
	 <div ><div class="section-title">Abilità:</div>
<ul class="abilita-list" style= "height: 260px;">
<li id="noAbilita-cerca" onclick="data.selectAbilitaBt(event)" style="background-color:#ededed;" class=" selected">Nessuna</li>
<%
for(Abilita a : abilitaValide){
	String nome = a.getNome();
%><li id="<% out.print('A'+nome); %>" 
	  style="background-color:hsl(<% out.print((nome.length()*100 % 36)*10);%>,83%,88%)"
	  onclick="data.selectAbilitaBt(event)"
	  <%
	  if (nome.length() > 20) out.print(" class=\"very-long\"");
	  else if (nome.length() > 10) out.print(" class=\"long\"");
	  %>
	  ><%out.print(nome);%></li>
	  <%}%>
</ul>
</div>
	<div class="dialog-bottom"><a onclick="dialogs.hide()" class="button">Annulla</a><a onclick="data.fetch()" class="button red">Cerca</a></div>
</div>

</div>
</body>
</html>